/*
 *接口编写处...
*如果接口需要做Action的权限验证，请在Action上使用属性
*如: [ApiActionPermission("MaterialRequisition",Enums.ActionPermissionOptions.Search)]
 */
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.AspNetCore.Http;
using Mercury.Entity.DomainModels;
using Mercury.Order.IServices;
using Mercury.Core.Utilities;
using System.Linq;
using Mercury.Core.Extensions;
using Mercury.Core.Enums;
using Mercury.Core.Filters;

namespace Mercury.Order.Controllers
{
    public partial class MaterialRequisitionController
    {
        private readonly IMaterialRequisitionService _service;//访问业务代码
        private readonly IHttpContextAccessor _httpContextAccessor;

        [ActivatorUtilitiesConstructor]
        public MaterialRequisitionController(
            IMaterialRequisitionService service,
            IHttpContextAccessor httpContextAccessor
        )
        : base(service)
        {
            _service = service;
            _httpContextAccessor = httpContextAccessor;
        }

        public override async Task<WebResponseContent> GetPrintData([FromBody] PrintParam param)
        {
            var result = await base.GetPrintData(param);
            if (result.Status && !param.IsPrintView)
            {
                var key = typeof(MaterialRequisition).GetKeyName();
                await _service.EditStatus(param.Params[key]?.ToString());
            }
            return result;
        }


        [Route("CreateStoresRequisition"), HttpPost]
        public async Task<WebResponseContent> CreateStoresRequisition([FromBody]List<string> orderNos)
        {
            return await _service.CreateStoresRequisition(orderNos);
        }
    }
}
